/**
 *  原型模式：用原型实例指向创建对象的种类，并且通过拷贝这些原型创建新的对象
 *  从一个对象再创建另外一个可定制的对象，而且不需要知道任何创建的细节
 *
 *  原型模式主要用于对象的复制，它的核心类是Prototype，需要具备以下两个条件：
 *
 *  （1）实现Cloneable接口，可以在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。
 *      在java虚拟机中只有实现了这个接口的类才可以被拷贝，否则在运行时会报出CloneNotSupportedException异常
 *
 *  （2）重写Object类中的clone方法。在java中所有的父类都是Object类，Object类中有一个clone方法，作用是返回
 *      对象的一个拷贝，但是其作用域是protected类型，一般的类无法调用，所以Prototype类需要将clone方法的作用域改为public
 *
 *  在copy的时候涉及一个浅复制/深复制
 *  浅复制：通过调用Object类型的clone方法完成，只会拷贝对象中的基本的数据类型，对于数组，引用对象都不会拷贝
 *          因此，实现深复制，必须将原型中的数组，引用对象另行拷贝
 *
 * @author 王蕾 [wanglei_dev@cyou-inc.com]
 * @date 2017-12-05 14:30:00
 */
package CreationModel.PrototypeModel;